A computer game is a computer-controlled game where players interact with objects displayed on a screen. The term “computer game” also includes games which display only text or use other methods, such as sound or vibration, as their primary feedback device, or which use a controller, or which use a combination of feedback mechanisms. A video game is a computer game played on a personal computer, or on a console or arcade machine. In common usage, however, “computer game” or “PC game” refers to a game that is played on a personal computer and “console game” refers to one that is played on a device specifically designed for playing these types of games. The console typically interfaces with a standard television set. “Video game” is used to refer to any of the above and includes games made for any other device, including, but not limited to, mobile telephones, PDAs, advanced calculators, and so on.
Computer games are immensely popular, fostering a great market for new games. However, developing video games is difficult, time-consuming and there is a need to keep costs low enough to attract publisher investment. The average video game development team size as well as the average development time of a game have grown along with the size of the industry and the technology involved in creating games.
Broadly speaking, video game development includes content creation and code development. Content refers to the graphics (two-dimensional (2D) and three-dimensional (3D)), sounds and animation on which the program code of the video game operates. In the early days of game development, home computers were so limited that having specialized personnel for art was unnecessary. Up until about the early 1990s, almost all art for video games was created by the game programmers in code by specifying pixel colors and coordinates. In modern computer and video games, however, game artists create 2D art from which is developed concept art, textures or 3D models and animations. In fact, the number of game artists on a project can far exceed the number of programmers and testers on the game development team. Even when existing content is used (e.g., 2D pictures are obtained from the Internet), one of the challenges involved in the development of new video games is consuming this content because frequently, the content is not in the form required by the game engine. Artists typically generate their artwork in one of a small number of general purpose packages which are designed for producing web artwork and artwork for movies, not for producing game content. The packages produce content in any one of a number of file formats defined by the tool. These formats typically are not very close to what the game engine wants the content to look like. Therefore, a developer must typically take the content and transform it programmatically. This work is difficult and tedious and is not easily reuseable. Developers must write a lot of code and understand how the 3D content is created in order to make it compatible with the content exporters or the game engine that will consume it. Furthermore, existing content must typically undergo a conversion process so that it works properly with the other content being used. For instance, an authoring tool may describe content using procedural descriptions of the curves and modifier functions that were used to construct it, whereas the game engine just wants to consume a list of triangles. Furthermore, the format of data that can be consumed by a game engine will frequently be restricted by the implementation details of what currently available graphics cards are able to render, which is rarely a perfect match for the more flexible editable data structures used in the authoring tool. Typically, the way this problem is handled today is that people export the content to a well known format and then work with that well known format. If the artist did not originally export the file in the well known format, the game development team must go back to the artist and ask the artist to do so. This process is not easily automated and so if the artist has produced hundreds of files, each file must be exported individually. It would be helpful if there were a way to ease video game development by making the use of 2D and 3D content easier.